﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Follow.Business;
using System.Windows.Forms;

namespace Follow.Adm
{
    public partial class Funcionalidade : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["idUsuario"] == null)
            {
                Response.Redirect("../Default.aspx");
            }
            else
            {
                Common.ValidaPermissoes valida = new Common.ValidaPermissoes();
                bool possuiPermissao = valida.validaPermissaoPorTela("Funcionalidade", Convert.ToInt32(Session["idGrupoUsuario"]));

                if (possuiPermissao == false)
                {
                    Response.Redirect("../permissaoNegada.aspx");
                }

                if (Request["Msg"] != null)
                {
                    lblMensagem.Text = Request["Msg"].ToString();

                }
                this.PopulaFuncionalidades();
            }
        }

        protected void PopulaFuncionalidades()
        {
            FuncionalidadeBO bo = new FuncionalidadeBO();
            gvFuncionalidade.DataSource = bo.findByDescricao(txtPesquisa.Text);
            gvFuncionalidade.DataBind();
        }

        protected void btnPesquisa_Click(object sender, EventArgs e)
        {
            this.PopulaFuncionalidades();
        }

        protected void gvFuncionalidade_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("Editar"))
            {
                Int32 id = Convert.ToInt32(this.gvFuncionalidade.DataKeys[Convert.ToInt32(e.CommandArgument)].Value);
                Response.Redirect("~/Adm/FuncionalidadeOperacao.aspx?IDFuncionalidade=" + id.ToString());
            }
            else if (e.CommandName.Equals("Excluir"))
            {
                if (System.Windows.Forms.MessageBox.Show("Tem certeza que deseja excluir?", "Excluir", MessageBoxButtons.OKCancel,
                    MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification) ==
                    System.Windows.Forms.DialogResult.OK)
                {
                    this.lblMensagem.Visible = true;
                    Int32 id = 0;
                    try
                    {
                        id = Convert.ToInt32(this.gvFuncionalidade.DataKeys[Convert.ToInt32(e.CommandArgument)].Value);
                    }
                    catch
                    {
                        return;
                    }
                    FuncionalidadeBO bo = new FuncionalidadeBO();
                    try
                    {
                        bo.delete(id, Convert.ToInt32(Session["idUsuario"]));
                        this.lblMensagem.Text = "Funcionalidade excluída com sucesso!";
                        this.PopulaFuncionalidades();
                    }
                    catch (Exception ex)
                    {
                        this.lblMensagem.Text = ex.Message;
                    }
                }
            }
        }

        protected void gvFuncionalidade_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        protected void gvFuncionalidade_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvFuncionalidade.PageIndex = e.NewPageIndex;
            PopulaFuncionalidades();
        }

        protected void btnIncluir_Click(object sender, EventArgs e)
        {

        }
    }


}